import { getCurrentInstance } from 'vue'
// import { loginApi } from "@/api/user/user";
import { LoginParm } from '@/api/user/UserModel'
import { useStore } from '@/store'
import { useRouter } from 'vue-router'
export default function useLogin (loginModel: LoginParm, loginFormRef) {
  const store = useStore()
  const router = useRouter()
  // 这里是获取全部的ref的值，获取ref值的方式
  // getCurrentInstance这个方法获取的是当前组件的实例
  const { proxy } = getCurrentInstance() as any
  // console.log('打印的proxy',proxy);
  //登录提交

  const login = () => {
    /**
     * 引入之后，这里使用Proxy来代替了this来获取
     * 打印Proxy，可以获取全部的ref，然后就可以获取具体的
     * 也可以使用引入原来获取的ref的方式来进行验证，这个也是后面
     * 表单验证时，或者获取组件时的通用做法
     */
    loginFormRef.value?.validate(async valid => {
      // proxy.$refs.loginFormRef.validate(async (valid: boolean) => {
      console.log(valid)
      if (valid) {
        console.log(loginModel)
        store.dispatch('user/login', loginModel).then(res => {
          store.dispatch('user/getInfo')
          if (res.data.code == 200) {
            router.push({ path: '/' })
          }
        })
        // await loginApi(loginModel).then(res => {
        //     if (res.code == 200) {
        //         console.log(res)
        //     }
        // })
      }
    })
  }
  return {
    login
  }
}
